
const fs = require('fs');
const dbConfig = Require('./proxy/dbConfig.js')();

const nedbObject = Require('./proxy/nedb.js');
const nedbNote = Require('./proxy/nedbNote.js');
const nedbModal = Require('./proxy/nedbModal.js');
const nedbUrl = Require('./proxy/nedbUrl.js');
// const mongodbObject = Require('./proxy/mongoDB.js');
// const mongodbObjectNote = Require('./proxy/mongoDBNote.js');
// const mongoDBModal = Require('./proxy/mongoDBModal.js');
// const mongoDBUrl = Require('./proxy/mongoDBURL.js');


let mongoObject = Require('./proxy/mongo/DBContent.js');


var proxy = function () { };

var app = Require('electron').remote;
const appPath = app.app.getPath('appData') + '\\Requester';

// alert(appPath);


proxy.prototype = {
    constructor: this,
    getId: function (callback) {
        fs.readFile(appPath + '/data/lastControl.json', function (err, data) {
            if (err) {
                callback(err, null);
            } else {
                var data = JSON.parse(data.toString());
                if (data.font) {
                    $("body").css("font-family", data.font);
                };
                callback(err, data.id);
            };
        });
    },
    getPorjectConfig: function (id, cb) {
        dbConfig.getById(id, function (error, doc) {
            cb(doc);
            // console.log(doc);
        });
    },
    getPorjectLastControl: function (id, callback) {
        fs.readFile(appPath + '/data/' + id + '.json', function (err, data) {
            if (err) {
                callback(err, null);
            } else {
                var data = JSON.parse(data.toString());
                callback(null, data);
            };
        });
    },
    getDBObject: function (config, callback) {

        if (config.type == 'local') {
            callback({
                list: nedbObject(config),
                Content: nedbNote.Content(config),
                Image: nedbNote.Image(config),
                Modal: nedbModal.modal(config),
                Url: nedbUrl.Url(config),
            });
        } else {
            var MongoDBEX = mongoObject(config);
            MongoDBEX.onOpen(function () {
                callback({
                    list: MongoDBEX.api,
                    Content: MongoDBEX.note,
                    Image: MongoDBEX.image,
                    Modal: MongoDBEX.modal,
                    Url: MongoDBEX.url,
                });
            });
        }



        // if (config.type == 'local') {
        //     return {
        //         list: nedbObject(config),
        //         Content: nedbNote.Content(config),
        //         Image: nedbNote.Image(config),
        //         Modal: nedbModal.modal(config),
        //         Url: nedbUrl.Url(config),
        //     };
        // } else {
        //     return {
        //         list: mongodbObject(config),
        //         Content: mongodbObjectNote.Content(config),
        //         Image: mongodbObjectNote.Image(config),
        //         Modal: mongoDBModal.modal(config),
        //         Url: mongoDBUrl.Url(config),
        //     };
        // };
    },
    setPorjectLastControl: function (id, data, callback) {
        data = JSON.stringify(data, null, 4);
        fs.writeFile(appPath + '/data/' + id + '.json', data, function (err) {
            if (err) {
                console.error("文件写入失败");
            } else {
                callback();
            }
        })
    }
};

module.exports = function () {
    return new proxy();
};